#ifndef __DHT11_H
#define __DHT11_H 

#include "stm32f4xx.h"  // 包含 STM32F4 的头文件
#include "Gscsd.h"      // 包含 Gscsd 的头文件

// 设置 DHT11 数据引脚为输入模式
#define DHT11_IO_IN()  {GPIOA->MODER&=~(3<<(3*2));GPIOA->MODER|=0<<3*2;}	
// 设置 DHT11 数据引脚为输出模式
#define DHT11_IO_OUT() {GPIOA->MODER&=~(3<<(3*2));GPIOA->MODER|=1<<3*2;} 	 

// 定义 DHT11 数据引脚输出
#define DHT11_DQ_OUT PAout(3) 
// 定义 DHT11 数据引脚输入
#define DHT11_DQ_IN  PAin(3)  

// DHT11 初始化函数，返回值为初始化状态
uint8_t DHT11_Init(void);
// 读取 DHT11 数据，参数为温度和湿度指针，返回值为读取状态
uint8_t DHT11_Read_Data(uint8_t *temp,uint8_t *humi);
// 读取 DHT11 一个字节的数据
uint8_t DHT11_Read_Byte(void);
// 读取 DHT11 一个比特的数据
uint8_t DHT11_Read_Bit(void);
// 检查 DHT11 是否存在
uint8_t DHT11_Check(void);
// 重置 DHT11
void DHT11_Rst(void);  

#endif
